package com.ming_za.od_updater_sdk.processing.record;

import com.ming_za.od_updater_sdk.IUpdater;
import com.ming_za.od_updater_sdk.ODUpdater;
import com.ming_za.od_updater_sdk.obj.UpdateRecord;

public interface IUpdateRecorder {

    /**
     * 获取以更新完成的内容
     * @param odUpdater 更新器对象
     * @return 记录对象，当记录文件不存在时<code>version == notCompletedVersion == 0</code>
     */
    UpdateRecord getUpdatedVersion(IUpdater odUpdater);

    /**
     * 指定当前记录的版本
     * @param odUpdater 更新器对象
     * @param version 版本号
     */
    void useVersion(IUpdater odUpdater, int version);

    /**
     * 给当前指定版本添加资源记录
     * @param resId 资源id
     */
    void addRes(long resId);

    /**
     * 完成当前版本的记录写入
     */
    void complete();

    /**
     * 仅关闭流
     * <p>当出现异常无法完成记录时调用该方法终止当前更新记录</p>
     */
    void closeStream();

    /**
     * 验证当前是否存在指定版本
     * @return 存在==true
     */
    boolean isUseVersion();

}
